package org.btik.light.mobile.ui.devs.camcar;

import android.view.View;
import android.widget.CompoundButton;
import org.btik.light.mobile.common.handler.adaptor.SpeedHandler;

import java.util.function.Consumer;

/**
 * @author lustre
 * @since 2023/5/1 8:19
 */
public class CamCarActionMeta {
    /**
     * 速度控制
     */
    private SpeedHandler speedHandler;

    /**
     * 前
     */
    private View.OnClickListener goForward;

    /**
     * 倒车
     */
    private View.OnClickListener goBackward;

    /**
     * 左转
     */
    private View.OnTouchListener toTurnLeft;
    /**
     * 右转
     */
    private View.OnTouchListener toTurnRight;

    /**
     * 停车
     */
    private View.OnClickListener toStop;

    private Consumer<View> videoOn;

    private Consumer<View> videoOff;

    private Consumer<View> lightOn;

    private Consumer<View> lightOff;

    private  CompoundButton.OnCheckedChangeListener verticalFlip;

    private  CompoundButton.OnCheckedChangeListener horizontalMirrorSwitch;

    private CompoundButton.OnCheckedChangeListener videoSwitch;

    private CompoundButton.OnCheckedChangeListener lightSwitch;

    public SpeedHandler getSpeedHandler() {
        return speedHandler;
    }

    public CamCarActionMeta setSpeedHandler(SpeedHandler speedHandler) {
        this.speedHandler = speedHandler;
        return this;
    }

    public View.OnClickListener getGoForward() {
        return goForward;
    }

    public CamCarActionMeta setGoForward(View.OnClickListener goForward) {
        this.goForward = goForward;
        return this;
    }

    public View.OnClickListener getGoBackward() {
        return goBackward;
    }

    public CamCarActionMeta setGoBackward(View.OnClickListener goBackward) {
        this.goBackward = goBackward;
        return this;
    }

    public View.OnTouchListener getToTurnLeft() {
        return toTurnLeft;
    }

    public CamCarActionMeta setToTurnLeft(View.OnTouchListener toTurnLeft) {
        this.toTurnLeft = toTurnLeft;
        return this;
    }

    public View.OnTouchListener getToTurnRight() {
        return toTurnRight;
    }

    public CamCarActionMeta setToTurnRight(View.OnTouchListener toTurnRight) {
        this.toTurnRight = toTurnRight;
        return this;
    }

    public View.OnClickListener getToStop() {
        return toStop;
    }

    public CamCarActionMeta setToStop(View.OnClickListener toStop) {
        this.toStop = toStop;
        return this;
    }

    public Consumer<View> getVideoOn() {
        return videoOn;
    }

    public CamCarActionMeta setVideoOn(Consumer<View> videoOn) {
        this.videoOn = videoOn;
        return this;
    }

    public Consumer<View> getVideoOff() {
        return videoOff;
    }

    public CamCarActionMeta setVideoOff(Consumer<View> videoOff) {
        this.videoOff = videoOff;
        return this;
    }

    public Consumer<View> getLightOn() {
        return lightOn;
    }

    public CamCarActionMeta setLightOn(Consumer<View> lightOn) {
        this.lightOn = lightOn;
        return this;
    }

    public Consumer<View> getLightOff() {
        return lightOff;
    }

    public CamCarActionMeta setLightOff(Consumer<View> lightOff) {
        this.lightOff = lightOff;
        return this;
    }

    public CompoundButton.OnCheckedChangeListener getVideoSwitch() {
        return videoSwitch;
    }

    public CamCarActionMeta setVideoSwitch(CompoundButton.OnCheckedChangeListener videoSwitch) {
        this.videoSwitch = videoSwitch;
        return this;
    }

    public CompoundButton.OnCheckedChangeListener getLightSwitch() {
        return lightSwitch;
    }

    public CamCarActionMeta setLightSwitch(CompoundButton.OnCheckedChangeListener lightSwitch) {
        this.lightSwitch = lightSwitch;
        return this;
    }

    public CompoundButton.OnCheckedChangeListener getVerticalFlip() {
        return verticalFlip;
    }

    public CamCarActionMeta setVerticalFlip(CompoundButton.OnCheckedChangeListener vFlip) {
        this.verticalFlip = vFlip;
        return this;
    }

    public CompoundButton.OnCheckedChangeListener getHorizontalMirrorSwitch() {
        return horizontalMirrorSwitch;
    }

    public CamCarActionMeta setHorizontalMirrorSwitch(CompoundButton.OnCheckedChangeListener horizontalMirrorSwitch) {
        this.horizontalMirrorSwitch = horizontalMirrorSwitch;
        return this;
    }
}
